# iPaaS Portal 后端开发环境搭建指南
# 文档说明
本文档旨在为开发者提供iPaaS Portal后端高开定制的完整流程指导,包括源码环境搭建、编译、启动以及打包部署的全流程操作说明,助力开发者高效完成iPaaS Portal后端的定制开发工作。
本文在Win11 64位操作系统中,基于JDK1.8.0_251、 EOS8.3.3、MySQL 5.7.33讲解,其他环境需根据实际情况调整。
# 前提
已申请获取iPaaS Portal源码。
# 环境准备
# 1、安装JDK并配置环境变量
支持的JDK版本:OracleJDK 1.8.0_251、OpenJDK 1.8.0_382,请自行获取JDK介质并安装。
JDK的安装和环境变量配置按标准方式配置,配置好以后打开cmd窗口执行java -version命令,显示了
安装的JDK版本,说明JDK环境变量配置正确。

# 2、安装IntelliJ IDEA社区版
推荐使用已验证的2023.2.6版本,即Build:232.10300.40 从jetbrains的官网,下载对应版本的介质并安装,注意下载和机器的操作系统和架构匹配的介质 如:2023.2.6版本(Build:232.10300.40)
下载地址参考:https://www.jetbrains.com/idea/download/other.html

# 3、准备Maven相关资源
# 3.1、准备Maven工具
1) 使用IDEA里带的Maven3.9.2
2) 自行安装Maven,推荐版本3.8.5
# 3.2、准备settings.xml
从阿里云仓库拉取依赖,点击链接下载settings.xml:settings.xml
在IDEA中,点击右侧Maven - Maven Settings,在Settings界面 -> Build,Execution,Deployment -> Build Tools -> Maven关联settings.xml

注意修改settings.xml里localRepository的配置,配置为Maven本地仓库的路径。

# 源码导入、编译
1、源码导入 使用IDEA打开iPaaS Portal的源码目录,选择根pom,导入为maven工程

2、编译 执行Maven install操作,安装到本地Maven仓库,以便其它Maven项目可以引用它。

打印出BUILD SUCCESS,说明源码编译成功。

# 数据库初始化
获取的安装包(Primeton_iPaaS_9.1.0_Portal_Standalone.tar),解压后执行如下脚本:
- 以 Mysql 为例,创建编码格式为 UTF-8 的数据库 ipass。
- 在“Primeton_iPaaS_9.1.0_Portal_Standalone\db-scripts”目录下,按照数字顺序执行数据库脚本,具体顺序如下:
1. eos/Mysql/eos_all.sql
2. afcenter/Mysql/afc_all.sql
3. esb/Mysql/1-esb-afc-data.sql
4. esb/Mysql/2-schema-esb-mysql.sql
5. esb/Mysql/3-data-esb-mysql.sql
6. esb/Mysql/4-data-ipaas-connector-mysql.sql
# 配置修改
# 1、放数据库驱动
将数据库驱动jar包和方言jar包添加到项目依赖的lib下。

# 2、配置修改
在com.primeton.esb.governor.esbafcboot 模块下修改配置文件。

# 2.1、修改application.properties
打开application.properties文件,修改iPaaSPortal服务端口、redis、数据库类型及方言配置。
server.port=8080
server.connection-timeout=60000
spring.pid.file=pid
spring.profiles.active=nacos,afc,esb
spring.application.name=ESB
spring.jmx.default-domain=${spring.application.name}
spring.cloud.inetutils.preferred-networks=192.168
server.app-server.min-spare-threads=100
server.app-server.max-threads=500
server.app-server.max-connections=1000
server.app-server.accept-count=200
management.health.elasticsearch.enabled=false
spring.resources.static-locations=file:./webapp #前端静态资源路径
management.endpoints.web.exposure.include=hystrix.stream,health,info,loggers,eos,mappings
spring.main.allow-bean-definition-overriding=true
out.config.folder=config
eos.profiles.active=dev
eos.cache.mode=redis
eos.admin.port=${server.port}
eos.application.sys-code=EOS-DEMO-SYS
eos.application.sys-key=dc6baaed30e541d78bb91274803d9432
spring.session.store-type=none
# redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=123456
spring.redis.lettuce.pool.max-active=100
spring.redis.lettuce.pool.max-idle=100
spring.redis.lettuce.pool.max-wait=5000
# hibernate
spring.jpa.open-in-view=false
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.jpa.properties.hibernate.connection.handling_mode=IMMEDIATE_ACQUISITION_AND_HOLD
spring.jpa.properties.hibernate.new_generator_mappings=false
spring.jpa.properties.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect #默认mysql数据库方言
spring.jpa.properties.database=MYSQL #默认mysql数据库
spring.mvc.dateFormat=yyyy-MM-dd HH:mm:ss
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
spring.jackson.serialization.write-dates-as-timestamps=false
#swagger
swagger.enable=false
# feign
feign.client.config.default.connectTimeout=2000
feign.client.config.default.readTimeout=1000
#AFC\u90E8\u7F72\u65B9\u5F0F sdk || starter
console.deploy.type=starter
#mock\u7AEF\u53E3
afc.console.mock.port=1080
| 参数 | 说明 |
|---|---|
| server.port | iPaaSPortal服务的端口,默认8080。 |
| eos.cache.mode | 缓存方式,默认redis。 |
| spring.redis.host | eos.cache.mode=redis时,需要配置redis的IP地址。 |
| spring.redis.port | eos.cache.mode=redis时,需要配置redis端口。 |
| spring.redis.password | eos.cache.mode=redis时,需要配置redis密码。 |
| spring.jpa.properties.hibernate.dialect | 数据库方言类,默认mysql数据库方言,其它数据库参考:1.1 安装须知 的 数据库配置 章节的 方言配置。 |
| spring.jpa.properties.database | 参考下方表格。 |
database类型对应关系
| 数据库名称 | spring.jpa.properties.database |
|---|---|
| sqlserver | sqlserver |
| mysql | mysql |
| uxdb | uxdb |
| postgresql | postgresql |
| oscar | oscar |
| oracle | oracle |
| opengauss | opengauss |
| KingbaseES | KingbaseES |
| highgo | highgo |
| GBase8s | GBase8s |
| GBase8a | GBase |
| DM | DM |
# 2.2、修改user-config.xml
打开user-config.xml文件,修改数据库配置。
<group name="default">
<configValue key="Database-Type">MySql</configValue>
<configValue key="Jdbc-Type"/>
<configValue key="C3p0-DriverClass">com.mysql.jdbc.Driver</configValue>
<configValue key="C3p0-Url">jdbc:mysql://127.0.0.1:3306/ipass?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false</configValue>
<configValue key="C3p0-UserName">root</configValue>
<configValue key="C3p0-Password">root</configValue>
<configValue key="C3p0-PoolSize">10</configValue>
<configValue key="C3p0-MaxPoolSize">50</configValue>
<configValue key="C3p0-MinPoolSize">10</configValue>
<!-- //seconds, 0 means connections never expire -->
<configValue key="C3p0-MaxIdleTime">600</configValue>
<!-- //idle connections never tested -->
<configValue key="C3p0-IdleConnectionTestPeriod">900</configValue>
<configValue key="C3p0-MaxStatements">0</configValue>
<configValue key="C3p0-NumHelperThreads">1</configValue>
<configValue key="Transaction-Isolation">ISOLATION_DEFAULT</configValue>
<configValue key="Test-Connect-Sql">SELECT count(*) from EOS_UNIQUE_TABLE</configValue>
<configValue key="Retry-Connect-Count">-1</configValue>
</group>
| 参数 | 说明 |
|---|---|
| Database-Type | 参考本章节的 database类型对应关系 小节 |
| DriverClass | 数据库类型,根据实际环境修改。其它数据库参考:1.1 安装须知 的 数据库配置 章节的 驱动类名称。 |
| Url | 访问数据库的JDBC URL,根据实际环境修改。其它数据库参考:1.1 安装须知 的 数据库配置 章节的 连接URL。 |
| UserName | 数据库用户名,根据实际环境修改。例如:root |
| Password | 数据库用户密码,根据实际环境修改。例如:111111 |
# 2.3、修改application-esb.properties
打开application-esb.properties文件, 修改elasticsearch相关配置:
非搭建源码环境的必须配置,运维门户监控数据相关功能需要连接ES。
#esb restTemplate
esb.business=true
esb.database.init=false
esb.database.enforceInit=false
esb.rest.client.socket.timeout=20000
esb.rest.client.connect.timeout=10000
esb.rest.client.connectionRequest.timeout=10000
esb.rest.client.evictIdleConnections=60
esb.rest.client.ConnectionTimeToLive=60
elasticsearch.enabled=true
elasticsearch.ioThreadCount=50
elasticsearch.connectTimeout=60000
elasticsearch.maxTotal=10000
elasticsearch.maxPerRoute=1000
elasticsearch.numberOfShards=1
elasticsearch.numberOfReplicas=0
elasticsearch.refreshInterval=10s
elasticsearch.username=elastic
elasticsearch.password=primeton000000
elasticsearch.certificate=C:\\Users\\s\\Desktop\\es\\http_ca.crt
elasticsearch.hosts[0].ip=127.0.0.1
elasticsearch.hosts[0].port=9200
elasticsearch.hosts[0].protocol=https
| 参数 | 说明 |
|---|---|
| elasticsearch.enabled | 是否启用ElasticSearch,默认为true。 |
| elasticsearch.username | ElasticSearch 的访问用户名,默认为elastic。 |
| elasticsearch.password | ElasticSearch 的访问密码,密码为安装elasticsearch时设置的密码 |
| elasticsearch.certificate | ElasticSearch的证书,该证书为elasticsearch-8.1.2\config\certs下的http_ca.crt文件,文件位置需配置绝对路径 |
| elasticsearch.hosts[0].ip | 配置成安装ElasticSearch的机器IP地址。 |
| elasticsearch.hosts[0].port | ElasticSearch 的启动端口号。默认为9200。 |
| elasticsearch.hosts[0].protocol | ElasticSearch 的http协议,默认https。 |
# 更新license文件
将项目中的license文件primetonlicense.xml替换为有效license,文件路径为:com.primeton.esb.governor.esbafcboot\src\META-INF_srv\primetonlicense.xml。

# 更新target
运行com.primeton.esb.governor.esbafcboot 模块下Maven clean、compile或install,更新target,确保修改的配置和license生效。

# 项目启动
1.运行com.primeton.esb.governor.esbafcboot 模块下的Application,启动iPaaS Portal。
2.启动后,查看日志,如下图则启动成功。

# 打包部署
1、通过maven构建构件包,确保构建成功,在当前构件包的target目录下找到生成的构件包同名jar。

2、将生成的jar包放到portal/patches目录下,重启Portal即可完成部署。
